#pragma once
#include <QString>

#define CNString QString::fromUtf8						//中文字符串
#define DateTimeFormat "yyyy-MM-dd hh:mm:ss.zzz"		//时间格式定义
#define MSqlError(text) qDebug() << QString("MSql Error: %1").arg(text);	//错误打印

namespace NsMSql
{
	//数据库类型
	enum MDatabaseType
	{
		eMySQL=0,	//mysql数据库
		eSQLite		//sqlite数据库
	};
	//数据库服务器属性
	struct MSqlServerAttr
	{
		//服务器参数
		MDatabaseType type;		//数据库（驱动）类型
		QString hostName;
		int port;
		QString userName;
		QString password;

		//数据库参数（当连接服务器时不填即可）
		QString databaseName;	//当type = eSQLite时为数据库文件路径

		//连接池参数
		int initialConnectNum = 1;			//初始化连接数，此数量+1（默认连接）= 初始化时系统的总连接数
		int maxConnectionNum = 1000;		//最大连接数
	};
	//字段数据类型
	enum MFieldDataType
	{
		eInt = 0,
		eVarchar,
		eDouble,
		eDateTime
	};
	//表字段
	struct MTableField
	{
		QString fieldName;				//字段名
		bool primaryKey;				//是否是主键
		bool primaryKeyIncrement;		//是否主键自增
		MFieldDataType fieldDataType;	//字段数据类型
		int fieldDataLength;		    //字段数据长度
		int decimalLength;				//数据小数部分长度(当fieldDataType为浮点数时有效)
		QString remark;					//注释
	};
}